#ifndef BOOLEANSTATEMENT_H_
#define BOOLEANSTATEMENT_H_

#include "TypedValue.h"
#include "Dictionary.h"

class BooleanStatement
{
	char operation[64];
	BooleanStatement * bs1;
	BooleanStatement * bs2;
	
	TypedValue * tv1;
	TypedValue * tv2;
	
	char * de1;
	char * de2;
	
	public:
	BooleanStatement(char * operation, BooleanStatement * bs1, BooleanStatement * bs2);
	BooleanStatement(char * operation, BooleanStatement * bs1, TypedValue * tv2);
	BooleanStatement(char * operation, BooleanStatement * bs1, char * de2);
	
	BooleanStatement(char * operation, TypedValue * tv1, BooleanStatement * bs2);
	BooleanStatement(char * operation, TypedValue * tv1, TypedValue * tv2);
	BooleanStatement(char * operation, TypedValue * tv1, char * de2);
	
	BooleanStatement(char * operation, char * de1, BooleanStatement * bs2);
	BooleanStatement(char * operation, char * de1, TypedValue * tv2);
	BooleanStatement(char * operation, char * de1, char * de2);
	
	~BooleanStatement();
	bool Evaluate(Dictionary * dictionary);
	bool EvaluateBooleanArgument(Dictionary * dictionary, BooleanStatement * bs1, TypedValue * tv1, char * de1);
	
};
#endif /*BOOLEANSTATEMENT_H_*/
